home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / 1.098 / include / tk.h < prev    next >
C/C++ Source or Header  |  1991-04-19  |  18KB  |  492 lines

  1. /*
  2.  * tk.h --
  3.  *
  4.  *    Declarations for Tk-related things that are visible
  5.  *    outside of the Tk module itself.
  6.  *
  7.  * Copyright 1989, 1990 Regents of the University of California.
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /user5/ouster/wish/RCS/tk.h,v 1.63 91/04/06 14:47:30 ouster Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _TK
  20. #define _TK
  21.  
  22. #ifndef _TCL
  23. #include <tcl.h>
  24. #endif
  25. #ifndef _XLIB_H
  26. #include <X11/Xlib.h>
  27. #endif
  28.  
  29. /*
  30.  * Definitions that allow Tk to be used either with or without
  31.  * ANSI C features like function prototypes.
  32.  */
  33.  
  34. #undef _ARGS_
  35. #undef const
  36. #if defined(USE_ANSI) && defined(__STDC__)
  37. #   define _ARGS_(x)    x
  38. #else
  39. #   define _ARGS_(x)    ()
  40. #   define const
  41. #endif
  42.  
  43. #ifndef _CLIENTDATA
  44. typedef int *ClientData;
  45. #define _CLIENTDATA
  46. #endif
  47.  
  48. /*
  49.  * Dummy types that are used by clients:
  50.  */
  51.  
  52. typedef int Tk_ErrorHandler;
  53. typedef int Tk_TimerToken;
  54. typedef struct Tk_Window *Tk_Window;
  55. typedef struct Tk_3DBorder *Tk_3DBorder;
  56.  
  57. /*
  58.  * Additional types exported to clients.
  59.  */
  60.  
  61. typedef char *Tk_Uid;
  62.  
  63. /*
  64.  * Structure used to specify how to handle argv options.
  65.  */
  66.  
  67. typedef struct {
  68.     char *key;        /* The key string that flags the option in the
  69.              * argv array. */
  70.     int type;        /* Indicates option type;  see below. */
  71.     char *src;        /* Value to be used in setting dst;  usage
  72.              * depends on type. */
  73.     char *dst;        /* Address of value to be modified;  usage
  74.              * depends on type. */
  75.     char *help;        /* Documentation message describing this option. */
  76. } Tk_ArgvInfo;
  77.  
  78. /*
  79.  * Legal values for the type field of a Tk_ArgvInfo: see the user
  80.  * documentation for details.
  81.  */
  82.  
  83. #define TK_ARGV_CONSTANT        15
  84. #define TK_ARGV_INT            16
  85. #define TK_ARGV_STRING            17
  86. #define TK_ARGV_UID            18
  87. #define TK_ARGV_REST            19
  88. #define TK_ARGV_FLOAT            20
  89. #define TK_ARGV_FUNC            21
  90. #define TK_ARGV_GENFUNC            22
  91. #define TK_ARGV_HELP            23
  92. #define TK_ARGV_CONST_OPTION        24
  93. #define TK_ARGV_OPTION_VALUE        25
  94. #define TK_ARGV_OPTION_NAME_VALUE    26
  95. #define TK_ARGV_END            27
  96.  
  97. /*
  98.  * Flag bits for passing to Tk_ParseArgv:
  99.  */
  100.  
  101. #define TK_ARGV_NO_DEFAULTS        0x1
  102. #define TK_ARGV_NO_LEFTOVERS        0x2
  103. #define TK_ARGV_NO_ABBREV        0x4
  104. #define TK_ARGV_DONT_SKIP_FIRST_ARG    0x8
  105.  
  106. /*
  107.  * Structure used to specify information for Tk_ConfigureWidget.  Each
  108.  * structure gives complete information for one option, including
  109.  * how the option is specified on the command line, where it appears
  110.  * in the option database, etc.
  111.  */
  112.  
  113. typedef struct {
  114.     int type;            /* Type of option, such as
  115.                  * TK_CONFIG_COLOR;  see definitions
  116.                  * below.  Last option in table
  117.                  * has type TK_CONFIG_END. */
  118.     char *argvName;        /* Switch used to specify option
  119.                  * in argv.  NULL means this spec is
  120.                  * part of a group. */
  121.     char *dbName;        /* Name for option in option database. */
  122.     char *dbClass;        /* Class for option in database. */
  123.     char *defValue;        /* Default value for option if not
  124.                  * specified in command line or database. */
  125.     int offset;            /* Where in widget record to store value;
  126.                  * use Tk_Offset macro to generate values
  127.                  * for this. */
  128.     int specFlags;        /* For use by Tk_Configure;  client must
  129.                  * initialize to zero. */
  130. } Tk_ConfigSpec;
  131.  
  132. /*
  133.  * Type values for Tk_ConfigSpec structures.  See the user
  134.  * documentation for details.
  135.  */
  136.  
  137. #define TK_CONFIG_BOOLEAN    1
  138. #define TK_CONFIG_INT        2
  139. #define TK_CONFIG_DOUBLE    3
  140. #define TK_CONFIG_STRING    4
  141. #define TK_CONFIG_UID        5
  142. #define TK_CONFIG_COLOR        6
  143. #define TK_CONFIG_FONT        7
  144. #define TK_CONFIG_BITMAP    8
  145. #define TK_CONFIG_BORDER    9
  146. #define TK_CONFIG_RELIEF    10
  147. #define TK_CONFIG_CURSOR    11
  148. #define TK_CONFIG_SYNONYM    12
  149. #define TK_CONFIG_END        13
  150.  
  151. /*
  152.  * Macro to use to fill in "offset" fields of Tk_ConfigInfos.
  153.  * Computes number of bytes from beginning of structure to a
  154.  * given field.
  155.  */
  156.  
  157. #define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
  158.  
  159. /*
  160.  * User-visible flag values for Tk_ConfigInfo structures and
  161.  * also for calls to Tk_ConfigureWidget.  Before changing
  162.  * any values here, coordinate with
  163.  */
  164.  
  165. #define TK_CONFIG_ARGV_ONLY    1
  166. #define TK_CONFIG_COLOR_ONLY    2
  167. #define TK_CONFIG_MONO_ONLY    4
  168. #define TK_CONFIG_USER_BIT    0x100
  169.  
  170. /*
  171.  * Need to have tkInt.h included in order for access macros below
  172.  * to work.  However, can't include tkInt.h at the top of the file
  173.  * because it depends on some of the definitions in this file.
  174.  */
  175.  
  176. #ifndef _TKINT
  177. #include <tkInt.h>
  178. #endif
  179.  
  180. /*
  181.  * Bits to pass to Tk_CreateFileHandler to indicate what sorts
  182.  * of events are of interest:
  183.  */
  184.  
  185. #define TK_READABLE    1
  186. #define TK_WRITABLE    2
  187. #define TK_EXCEPTION    4
  188.  
  189. /*
  190.  * Priority levels to pass to Tk_AddOption:
  191.  */
  192.  
  193. #define TK_WIDGET_DEFAULT_PRIO    20
  194. #define TK_STARTUP_FILE_PRIO    40
  195. #define TK_USER_DEFAULT_PRIO    60
  196. #define TK_INTERACTIVE_PRIO    80
  197. #define TK_MAX_PRIO        100
  198.  
  199. /*
  200.  * Relief values returned by Tk_GetRelief:
  201.  */
  202.  
  203. #define TK_RELIEF_RAISED    1
  204. #define TK_RELIEF_FLAT        2
  205. #define TK_RELIEF_SUNKEN    4
  206.  
  207. /*
  208.  * Special EnterNotify/LeaveNotify "mode" for use in events
  209.  * generated by tkShare.c.  Pick a high enough value that it's
  210.  * unlikely to conflict with existing values (like NotifyNormal)
  211.  * or any new values defined in the future.
  212.  */
  213.  
  214. #define TK_NOTIFY_SHARE        20
  215.  
  216. /*
  217.  *--------------------------------------------------------------
  218.  *
  219.  * Macros for querying Tk_Window structures.  See the
  220.  * manual entries for documentation.
  221.  *
  222.  *--------------------------------------------------------------
  223.  */
  224.  
  225. #define Tk_Display(tkwin)        (((TkWindow *) (tkwin))->display)
  226. #define Tk_ScreenNumber(tkwin)        (((TkWindow *) (tkwin))->screenNum)
  227. #define Tk_Screen(tkwin)        (ScreenOfDisplay(Tk_Display(tkwin), \
  228.     Tk_ScreenNumber(tkwin)))
  229. #define Tk_WindowId(tkwin)        (((TkWindow *) (tkwin))->window)
  230. #define Tk_Name(tkwin)            (((TkWindow *) (tkwin))->nameUid)
  231. #define Tk_Class(tkwin)         (((TkWindow *) (tkwin))->classUid)
  232. #define Tk_PathName(tkwin)         (((TkWindow *) (tkwin))->pathName)
  233. #define Tk_X(tkwin)            (((TkWindow *) (tkwin))->changes.x)
  234. #define Tk_Y(tkwin)            (((TkWindow *) (tkwin))->changes.y)
  235. #define Tk_Width(tkwin)            (((TkWindow *) (tkwin))->changes.width)
  236. #define Tk_Height(tkwin) \
  237.     (((TkWindow *) (tkwin))->changes.height)
  238. #define Tk_Changes(tkwin)        (&((TkWindow *) (tkwin))->changes)
  239. #define Tk_Attributes(tkwin)        (&((TkWindow *) (tkwin))->atts)
  240. #define Tk_IsMapped(tkwin) \
  241.     (((TkWindow *) (tkwin))->flags & TK_MAPPED)
  242. #define Tk_ReqWidth(tkwin)        (((TkWindow *) (tkwin))->reqWidth)
  243. #define Tk_ReqHeight(tkwin)        (((TkWindow *) (tkwin))->reqHeight)
  244. #define Tk_InternalBorderWidth(tkwin) \
  245.     (((TkWindow *) (tkwin))->internalBorderWidth)
  246. #define Tk_Parent(tkwin) \
  247.     ((Tk_Window) (((TkWindow *) (tkwin))->parentPtr))
  248. #define Tk_DisplayName(tkwin)        (((TkWindow *) (tkwin))->dispPtr->name)
  249.  
  250. /*
  251.  *--------------------------------------------------------------
  252.  *
  253.  * Exported procedures and variables.
  254.  *
  255.  *--------------------------------------------------------------
  256.  */
  257.  
  258. extern void        Tk_AddOption _ARGS_((Tk_Window tkwin, char *name,
  259.                 char *value, int priority));
  260. extern void        Tk_CancelIdleCall _ARGS_((
  261.                 void (*proc)(ClientData clientData),
  262.                 ClientData clientData));
  263. extern void        Tk_ChangeWindowAttributes _ARGS_((Tk_Window tkwin,
  264.                 unsigned long valueMask,
  265.                 XSetWindowAttributes *attsPtr));
  266. extern int        Tk_ConfigureInfo _ARGS_((Tcl_Interp *interp,
  267.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  268.                 char *widgRec, char *argvName, int flags));
  269. extern int        Tk_ConfigureWidget _ARGS_((Tcl_Interp *interp,
  270.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  271.                 int argc, char **argv, char *widgRec,
  272.                 int flags));
  273. extern Tk_ErrorHandler    Tk_CreateErrorHandler _ARGS_((Display *display,
  274.                 int error, int request, int minorCode,
  275.                 int (*errorProc)(ClientData clientData,
  276.                 XErrorEvent *errEventPtr),
  277.                 ClientData clientData));
  278. extern void        Tk_CreateEventHandler _ARGS_((Tk_Window token,
  279.                 unsigned long mask,
  280.                 void (*proc)(ClientData clientData,
  281.                 XEvent *eventPtr),
  282.                 ClientData clientData));
  283. extern void        Tk_CreateFileHandler _ARGS_((int fd, int mask,
  284.                 void (*proc)(ClientData clientData, int mask),
  285.                 ClientData clientData));
  286. extern void        Tk_CreateFocusHandler _ARGS_((Tk_Window tkwin,
  287.                 void (*proc)(ClientData clientData,
  288.                 int gotFocus),
  289.                 ClientData clientData));
  290. extern Tk_Window    Tk_CreateMainWindow _ARGS_((Tcl_Interp *interp,
  291.                 char *screenName, char *baseName));
  292. extern void        Tk_CreateSelHandler _ARGS_((Tk_Window tkwin,
  293.                 Atom target,
  294.                 int (*proc)(ClientData clientData,
  295.                 int offset, char *buffer, int maxBytes),
  296.                 ClientData clientData, Atom format));
  297. extern Tk_TimerToken    Tk_CreateTimerHandler _ARGS_((int milliseconds,
  298.                 void (*proc)(ClientData clientData),
  299.                 ClientData clientData));
  300. extern Tk_Window    Tk_CreateWindow _ARGS_((Tcl_Interp *interp,
  301.                 Tk_Window parent, char *name, char *screenName));
  302. extern Tk_Window    Tk_CreateWindowFromPath _ARGS_((Tcl_Interp *interp,
  303.                 Tk_Window tkwin, char *pathName,
  304.                 char *screenName));
  305. extern void        Tk_DeleteErrorHandler _ARGS_((Tk_ErrorHandler handler));
  306. extern void        Tk_DeleteEventHandler _ARGS_((Tk_Window token,
  307.                 unsigned long mask,
  308.                 void (*proc)(ClientData clientData,
  309.                 XEvent *eventPtr),
  310.                 ClientData clientData));
  311. extern void        Tk_DeleteFileHandler _ARGS_((int fd));
  312. extern void        Tk_DeleteTimerHandler _ARGS_((Tk_TimerToken token));
  313. extern void        Tk_DestroyWindow _ARGS_((Tk_Window tkwin));
  314. extern int        Tk_DoOneEvent _ARGS_((int dontWait));
  315. extern void        Tk_DoWhenIdle _ARGS_((
  316.                 void (*proc)(ClientData clientData),
  317.                 ClientData clientData));
  318. extern void        Tk_Draw3DPolygon _ARGS_((Display *display,
  319.                 Drawable drawable, Tk_3DBorder border,
  320.                 XPoint *pointPtr, int numPoints, int borderWidth,
  321.                 int leftRelief));
  322. extern void        Tk_Draw3DRectangle _ARGS_((Display *display,
  323.                 Drawable drawable, Tk_3DBorder border, int x,
  324.                 int y, int width, int height, int borderWidth,
  325.                 int relief));
  326. extern void        Tk_EventuallyFree _ARGS_((ClientData clientData,
  327.                 void (*freeProc)(ClientData clientData)));
  328. extern void        Tk_Fill3DPolygon _ARGS_((Display *display,
  329.                 Drawable drawable, Tk_3DBorder border,
  330.                 XPoint *pointPtr, int numPoints, int borderWidth,
  331.                 int leftRelief));
  332. extern void        Tk_Fill3DRectangle _ARGS_((Display *display,
  333.                 Drawable drawable, Tk_3DBorder border, int x,
  334.                 int y, int width, int height, int borderWidth,
  335.                 int relief));
  336. extern void        Tk_Free3DBorder _ARGS_((Tk_3DBorder border));
  337. extern void        Tk_FreeBitmap _ARGS_((Pixmap bitmap));
  338. extern void        Tk_FreeColor _ARGS_((XColor *colorPtr));
  339. extern void        Tk_FreeCursor _ARGS_((Cursor cursor));
  340. extern void        Tk_FreeFontStruct _ARGS_((XFontStruct *fontStructPtr));
  341. extern void        Tk_FreeGC _ARGS_((GC gc));
  342. extern void        Tk_GeometryRequest _ARGS_((Tk_Window tkwin,
  343.                 int reqWidth,  int reqHeight));
  344. extern Tk_3DBorder    Tk_Get3DBorder _ARGS_((Tcl_Interp *interp,
  345.                 Tk_Window tkwin, Colormap colormap,
  346.                 Tk_Uid colorName));
  347. extern char *        Tk_GetAtomName _ARGS_((Tk_Window tkwin, Atom atom));
  348. extern Pixmap        Tk_GetBitmap _ARGS_((Tcl_Interp *interp,
  349.                 Tk_Window tkwin, Tk_Uid string));
  350. extern Pixmap        Tk_GetBitmapFromData _ARGS_((Tcl_Interp *interp,
  351.                 Tk_Window tkwin, char *source,
  352.                 unsigned int width, unsigned int height));
  353. extern XColor *        Tk_GetColor _ARGS_((Tcl_Interp *interp,
  354.                 Tk_Window tkwin, Colormap colormap, Tk_Uid name));
  355. extern XColor *        Tk_GetColorByValue _ARGS_((Tcl_Interp *interp,
  356.                 Tk_Window tkwin, Colormap colormap,
  357.                 XColor *colorPtr));
  358. extern Cursor        Tk_GetCursor _ARGS_((Tcl_Interp *interp,
  359.                 Tk_Window tkwin, Tk_Uid string));
  360. extern Cursor        Tk_GetCursorFromData _ARGS_((Tcl_Interp *interp,
  361.                 Tk_Window tkwin, char *source, char *mask,
  362.                 unsigned int width, unsigned int height,
  363.                 int xHot, int yHot, Tk_Uid fg, Tk_Uid bg));
  364. extern XFontStruct *    Tk_GetFontStruct _ARGS_((Tcl_Interp *interp,
  365.                 Tk_Window tkwin, Tk_Uid name));
  366. extern GC        Tk_GetGC _ARGS_((Tk_Window tkwin,
  367.                 unsigned long valueMask, XGCValues *valuePtr));
  368. extern Tk_Uid        Tk_GetOption _ARGS_((Tk_Window tkwin, char *name,
  369.                 char *class));
  370. extern int        Tk_GetRelief _ARGS_((Tcl_Interp *interp, char *name,
  371.                 int *reliefPtr));
  372. extern void        Tk_GetRootCoords _ARGS_ ((Tk_Window tkwin,
  373.                 int *xPtr, int *yPtr));
  374. extern int        Tk_GetSelection _ARGS_((Tcl_Interp *interp,
  375.                 Tk_Window tkwin, Atom target,
  376.                 int (*proc)(ClientData clientData,
  377.                 Tcl_Interp *interp, char *portion),
  378.                 ClientData clientData));
  379. extern Tk_Uid        Tk_GetUid _ARGS_((char *string));
  380. extern void        Tk_HandleEvent _ARGS_((XEvent *eventPtr));
  381. extern Atom        Tk_InternAtom _ARGS_((Tk_Window tkwin, char *name));
  382. extern void        Tk_MainLoop _ARGS_((void));
  383. extern void        Tk_MakeWindowExist _ARGS_((Tk_Window tkwin));
  384. extern void        Tk_ManageGeometry _ARGS_((Tk_Window tkwin,
  385.                 void (*proc)(ClientData clientData,
  386.                 Tk_Window tkwin),
  387.                 ClientData clientData));
  388. extern void        Tk_MapWindow _ARGS_((Tk_Window tkwin));
  389. extern void        Tk_MoveResizeWindow _ARGS_((Tk_Window tkwin, int x,
  390.                 int y, unsigned int width, unsigned int height));
  391. extern void        Tk_MoveWindow _ARGS_((Tk_Window tkwin, int x, int y));
  392. extern char *        Tk_NameOf3DBorder _ARGS_((Tk_3DBorder border));
  393. extern char *        Tk_NameOfBitmap _ARGS_((Pixmap bitmap));
  394. extern char *        Tk_NameOfColor _ARGS_((XColor *colorPtr));
  395. extern char *        Tk_NameOfCursor _ARGS_((Cursor cursor));
  396. extern char *        Tk_NameOfFontStruct _ARGS_((
  397.                 XFontStruct *fontStructPtr));
  398. extern char *        Tk_NameOfRelief _ARGS_((int relief));
  399. extern Tk_Window    Tk_NameToWindow _ARGS_((Tcl_Interp *interp,
  400.                 char *pathName, Tk_Window tkwin));
  401. extern void        Tk_OwnSelection _ARGS_((Tk_Window tkwin,
  402.                 void (*proc)(ClientData clientData),
  403.                 ClientData clientData));
  404. extern int        Tk_ParseArgv _ARGS_((Tcl_Interp *interp,
  405.                 Tk_Window tkwin, int *argcPtr, char **argv,
  406.                 Tk_ArgvInfo *argTable, int flags));
  407. extern void        Tk_Preserve _ARGS_((ClientData clientData));
  408. extern int        Tk_RegisterInterp _ARGS_((Tcl_Interp *interp,
  409.                 char *name, Tk_Window tkwin));
  410. extern void        Tk_Release _ARGS_((ClientData clientData));
  411. extern void        Tk_ResizeWindow _ARGS_((Tk_Window tkwin,
  412.                 unsigned int width, unsigned int height));
  413. extern Bool        (*Tk_RestrictEvents _ARGS_((
  414.                 Bool (*proc)(Display *display, XEvent *eventPtr,
  415.                 char *arg),
  416.                 char *arg, char **prevArgPtr)))
  417.                 _ARGS_((Display *display, XEvent *eventPtr,
  418.                 char *arg));
  419. extern void        Tk_SetBackgroundFromBorder _ARGS_((Tk_Window tkwin,
  420.                 Tk_3DBorder border));
  421. extern void        Tk_SetClass _ARGS_((Tk_Window tkwin, char *class));
  422. extern void        Tk_SetInternalBorder _ARGS_((Tk_Window tkwin,
  423.                 int width));
  424. extern void        Tk_SetWindowBackground _ARGS_((Tk_Window tkwin,
  425.                 unsigned long pixel));
  426. extern void        Tk_SetWindowBackgroundPixmap _ARGS_((Tk_Window tkwin,
  427.                 Pixmap pixmap));
  428. extern void        Tk_SetWindowBorder _ARGS_((Tk_Window tkwin,
  429.                 unsigned long pixel));
  430. extern void        Tk_SetWindowBorderWidth _ARGS_((Tk_Window tkwin,
  431.                 int width));
  432. extern void        Tk_SetWindowBorderPixmap _ARGS_((Tk_Window tkwin,
  433.                 Pixmap pixmap));
  434. extern void        Tk_ShareEvents _ARGS_((Tk_Window tkwin,
  435.                 Tk_Uid groupId));
  436. extern void        Tk_Sleep _ARGS_((int ms));
  437. extern void        Tk_UnmapWindow _ARGS_((Tk_Window tkwin));
  438. extern void        Tk_UnshareEvents _ARGS_((Tk_Window tkwin,
  439.                 Tk_Uid groupId));
  440.  
  441.  
  442. extern int        tk_NumMainWindows;
  443.  
  444. /*
  445.  * Tcl commands exported by Tk:
  446.  */
  447.  
  448. extern int        Tk_AfterCmd _ARGS_((ClientData clientData,
  449.                 Tcl_Interp *interp, int argc, char **argv));
  450. extern int        Tk_ApplicationCmd _ARGS_((ClientData clientData,
  451.                 Tcl_Interp *interp, int argc, char **argv));
  452. extern int        Tk_BindCmd _ARGS_((ClientData clientData,
  453.                 Tcl_Interp *interp, int argc, char **argv));
  454. extern int        Tk_ButtonCmd _ARGS_((ClientData clientData,
  455.                 Tcl_Interp *interp, int argc, char **argv));
  456. extern int        Tk_DestroyCmd _ARGS_((ClientData clientData,
  457.                 Tcl_Interp *interp, int argc, char **argv));
  458. extern int        Tk_EntryCmd _ARGS_((ClientData clientData,
  459.                 Tcl_Interp *interp, int argc, char **argv));
  460. extern int        Tk_FrameCmd _ARGS_((ClientData clientData,
  461.                 Tcl_Interp *interp, int argc, char **argv));
  462. extern int        Tk_FocusCmd _ARGS_((ClientData clientData,
  463.                 Tcl_Interp *interp, int argc, char **argv));
  464. extern int        Tk_ListboxCmd _ARGS_((ClientData clientData,
  465.                 Tcl_Interp *interp, int argc, char **argv));
  466. extern int        Tk_MenuCmd _ARGS_((ClientData clientData,
  467.                 Tcl_Interp *interp, int argc, char **argv));
  468. extern int        Tk_MenubuttonCmd _ARGS_((ClientData clientData,
  469.                 Tcl_Interp *interp, int argc, char **argv));
  470. extern int        Tk_MessageCmd _ARGS_((ClientData clientData,
  471.                 Tcl_Interp *interp, int argc, char **argv));
  472. extern int        Tk_OptionCmd _ARGS_((ClientData clientData,
  473.                 Tcl_Interp *interp, int argc, char **argv));
  474. extern int        Tk_PackCmd _ARGS_((ClientData clientData,
  475.                 Tcl_Interp *interp, int argc, char **argv));
  476. extern int        Tk_ScaleCmd _ARGS_((ClientData clientData,
  477.                 Tcl_Interp *interp, int argc, char **argv));
  478. extern int        Tk_ScrollbarCmd _ARGS_((ClientData clientData,
  479.                 Tcl_Interp *interp, int argc, char **argv));
  480. extern int        Tk_SelectionCmd _ARGS_((ClientData clientData,
  481.                 Tcl_Interp *interp, int argc, char **argv));
  482. extern int        Tk_SendCmd _ARGS_((ClientData clientData,
  483.                 Tcl_Interp *interp, int argc, char **argv));
  484. extern int        Tk_UpdateCmd _ARGS_((ClientData clientData,
  485.                 Tcl_Interp *interp, int argc, char **argv));
  486. extern int        Tk_WinfoCmd _ARGS_((ClientData clientData,
  487.                 Tcl_Interp *interp, int argc, char **argv));
  488. extern int        Tk_WmCmd _ARGS_((ClientData clientData,
  489.                 Tcl_Interp *interp, int argc, char **argv));
  490.  
  491. #endif _TK
  492.